package com.cy.pj.module.controller;

import com.cy.pj.module.pojo.RequestParameter;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

@RestController
public class ParamObjectController {
   //  http://localhost/doParam01?name=mvc
    //基于直接量来接收请求中的参数数据我们定义的方法参数名与请求参数名一样

    @GetMapping("/doParam01")
    //@RequestMapping(value="/doParam01",method=TequestMethod.GET)
    public String doMethodParam(String name){
        return "request params "+name;
    }
    @RequestMapping("/doParam02")
    //当使用pojo对象作为方法参数接受客户端参数数据时，pojo对象应该提供
    public String doMethodParam(RequestParameter param){//pojo对象接收请求参数,pojo对象中需提供与参数名相匹配的set方法
        return "request params "+param.toString();
    }
    @GetMapping("/doParam03")
    //当方法参数是map类型，而且希望基于map接受客户端请求参数，
    //则需要使用指定注解对map进行描述。例如@RequestParam
     //但是，使用Map作为方法参数接收客户端请求数据 不太严谨（客户端可以传递任意参数）
    public String doMethodParam(@RequestParam Map<String,Object> param){
        return "request params "+param.toString();
    }
}
